#!/data/tools/python3/bin/python3
# -*- coding:utf-8 -*-
'''
需求：
YDRIGHT-B-37021-ARs3303S-29831-48284.pdf
YDRIGHT-B-37021-ARs3303S-29831-48284.pdf.gz
YDRIGHT-B-37021-C5TSu67i-41102-48284.pdf
YDRIGHT-B-37021-C5TSu67i-41102-48284.pdf.gz
YDRIGHT-B-37021-CjfA5me1-37-48284.pdf
YDRIGHT-B-37021-D24qH5AC-33757-48284.pdf
YDRIGHT-B-37021-D24qH5AC-33757-48284.pdf.gz
YDRIGHT-B-37021-D73I688R-849-48284.pdf
YDRIGHT-B-37021-D73I688R-849-48284.pdf.gz
YDRIGHT-B-37021-D7gTKwtf-13529-48284.pdf
YDRIGHT-B-37021-D7gTKwtf-13529-48284.pdf.gz
YDRIGHT-B-37021-eH08S5C0-1245-48284.pdf
YDRIGHT-B-37021-eH08S5C0-1245-48284.pdf.gz
YDRIGHT-B-37021-favj1Fud-1190-48284.pdf
YDRIGHT-B-37021-favj1Fud-1190-48284.pdf.gz
YDRIGHT-B-37021-h5vlK297-6696-48284.pdf
YDRIGHT-B-37021-h5vlK297-6696-48284.pdf.gz
YDRIGHT-B-37021-I5lI0z6Q-45344-48284.pdf
YDRIGHT-B-37021-I5lI0z6Q-45344-48284.pdf.gz
YDRIGHT-B-37021-J2S07dB0-13563-48284.pdf
YDRIGHT-B-37021-J2S07dB0-13563-48284.pdf.gz
这些文件都是pdf的只是线上的代码出问题了，多产了后缀给gz的文件，现要删除多余的gz文件，如果gz文件对应的pdf文件不存在，需要将这个
文件重命名，去掉后缀gz，如果gz对应的文件存在就删除这个多余的gz文件。一般情况下都2个文件重复的，只是一个后缀是pdf，另一个后缀是pdf.gz 
开发的弄出了这个bug，又不解决，让运维的一个比对的删除，运维逼急了也上Python 代码

'''

import os
import re

# 这个函数的功能：将pdf文件和gz文件分开，分别存储在两个列表中
def split_gz_and_pdf_file(gz_file_dir_path):
    pattern = re.compile(r".*\.gz$")
    gz_file_list = []
    pdf_file_list = []
    for file in os.listdir(gz_file_dir_path):
        file_partten = pattern.match(file)

        # 使用正则表达式匹配后缀是否为.gz 如果是就存储在gz_file_list 这个列表中，否则就存在pdf_file_list 这个列表中
        if file_partten == None:
            pdf_file_list.append(file)
        else:
            gz_file_list.append(file)

    return pdf_file_list,gz_file_list

# 遍历gz文件列表，对每一个gz文件，除掉".gz" 这样的后缀，然后判断是否存在于pdf文件列表中，如果存在证明这个gz文件是多余的，可以删除
# 如果不存在那就要将此gz文件重命名，也就是去掉".gz" 后缀
def handle_gz_file():
    gz_file_dir_path = "/data/project/python/YD30300010982"
    pdf_file_list,gz_file_list = split_gz_and_pdf_file(gz_file_dir_path)


    for gz_file in gz_file_list:
        gz_file_path = gz_file_dir_path + "/" + gz_file
        pdf_file_path = gz_file_dir_path + "/" + gz_file[0:len(gz_file)-3]
        if gz_file[0:len(gz_file)-3] in pdf_file_list:
            os.remove(gz_file_path)
        else:
            os.rename(gz_file_path,pdf_file_path)

if __name__ == "__main__":

    handle_gz_file()